#ifndef ME_H
#define ME_H

#include <QDialog>
#include <QMessageBox>
#include <QTextStream>
#include <QList>
#include <QIcon>
#include <QtNetWork>
#include <QLineEdit>
//#include <QSound>

#include "login.h"
#include "regist.h"
#include "config.h"
#include "paihang.h"
//#include "tochatroom.h"
#include "history.h"
#include "changepwd.h"
#include "changenickname.h"
#include "suredelaccount.h"


namespace Ui {
class Me;
}

class Me : public QDialog
{
    Q_OBJECT


public:
    explicit Me(QWidget *parent = 0);
    ~Me();
    void saveUserToFile();
    void initScene(); //初始化窗口
    void getAllUsers(); //从文件获取所有的用户
    void modUser(); //修改用户信息

    Regist * regist; //注册界面
    Login * login; //登录界面
    User * loginUser; //当前登录用户
    PaiHang * paihang; //排行榜界面
    QList<User *> users; //临时保存用户数据
    QString tempScore; //接收从主窗口传递来的分数
    bool isLogin; //是否登录
//    ToChatRoom * toChatRoom;
    History * history;
    ChangePwd * changePwd;
    ChangeNickName * changeNickName;
    SureDelAccount * sureDelAccount;


    //Pang * pang;
signals:
    void showLogin(); //显示登录界面
    void showWidget(); //显示主窗口
    void sendZhiZuoPaiHang(); //发送信号制作排行榜
    void sendScoreToWidget(); //发送分数到主窗口
    void showRegist(); //显示注册界面
//    void showToChatRoom(); //显示toChatRoom界面
//    void showChatRoom(); //显示聊天室
    void sendShowHistory(); //发送信号显示历史记录界面
    void sendUpdateHistory(QString score); //发送信号更新历史记录
    void sendNameToHistory(QString userName, QString nickName); //发送信号用户名称给历史记录界面
    void sendShowChangePwd(); //发送信号显示修改密码界面
    void sendShowChangeNickName(); //发送信号显示修改昵称界面
    void sendShowSureDelAccount(); //发送信号显示确认注销账号界面
    void sendChangeScoreInMainWidget(); //发送信号修改主窗口的分数
public slots:
    void showMe(); //显示当前界面
    void recLoginUser(User *user);
    void recRegistUser(User *user);
    void recScore(QString score);
    void recNewMessageToMe(); //在我界面显示“您有新消息”
    void recClearNewMessage(); //在我界面清除“您有新消息”
    void recNewPwdToMe(QString newPwd); //接收信号传递新密码给我界面
    void recNewNickNameToMe(); //接收信号传递新昵称给我界面
    void recSureDelAccountToMe(); //接收信号确定注销账号
    void recChangeScoreInMeUi(); //接收信号改变我的界面的分数
private slots:
    void on_login_clicked();

    void on_back_clicked();

    void on_regist_clicked();

    void on_paiHang_clicked();

    void on_save_clicked();

//    void on_toChatRoom_clicked();

//    void on_chatRoom_clicked();

    void on_history_clicked();

    void on_changePwd_clicked();

    void on_changeNickName_clicked();

    void on_delAccount_clicked();

    void on_exitAccount_clicked();

public:
    Ui::Me *ui;
};

//User * Me::loginUser = nullptr;

#endif // ME_H
